perm filename PASCAL.ARR[UP,DOC]3 blob
sn#474829 filedate 1979-09-14 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 ∂06-Feb-78 0230 EJG Updated 28-aug-79 1517 ARR
C00009 ENDMK
C⊗;
∂06-Feb-78 0230 EJG Updated 28-aug-79 1517 ARR
There are currently (at least) two versions of PASCAL at the Stanford
A.I. lab. Neither is considered to be officially supported at the lab,
and the lab user community is small (but growing).
They both are versions of one compiler developed at the University
of Hamburg (in Germany), led by Dr. H.-H. Nagel.
A brief history of the development of the compiler is contained in
one of the documentation files listed below.
There are unfortunately some incompatibitilies between the old and the
new version.
The older version was put up at SAIL in (May?) 1975 by Mike Farmwald
(PMF). It was apparently usable but inconvenient and sometimes buggy.
For example, the old compiler produced only a runnable core image,
whereas the newer one produces more flexible relocatable (.REL) object
files.
The newer version was put up at SAIL in February 1978 by Erik Gilbert
(EJG). It came via LOTS from DECUS, and claims to be the '30-DEC-76'
| version from Hamburg.
| The most recent release of that new version, containing all the
| improvements made at LOTS, was put up at SAIL in July 1979 by Armando
| Rodriguez (ARR). Although it is still not officially supported, some
| more improvements are expected to occur in the foreseeable future.
| Together with this new release, some utilities programs have been installed.
| the ones that are reliable enough are: PCREF, a cross-referencer that also
| supports the statment count (PROFILE) and soon the timing fetures, and
| PFORM, a prettyprinter of PASCAL sources.
The only existing documentation on the old PASCAL is a brief help file,
which appears at the end of this file.
The documentation for the newer PASCAL and its related utilities is in six files:
| PASINS.ARR[UP,DOC] PASCAL installation guide
| PASNOT.ARR[UP,DOC] PASCAL local user's notes, from LOTS (and SAIL)
| (hints, hacks, log of changes)
| PASHLP.ARR[UP,DOC] 16 page help file, from LOTS: the most useful
| parts of PASMAN below
PASDOC.EJG[UP,DOC] History of DEC-10 implementation until 1976
| PASMAN.ARR[UP,DOC] User's manual, assuming prior knowledge
of PASCAL (from e.g. Wirth's report)
| PASCAL.ARR[UP,DOC] This file
| PCREF.ARR[UP,DOC] Brief user's manual of PCREF.
| PFORM.ARR[UP,DOC] Brief user's manual of PFORM.
The newer PASCAL is now available via the standard COMPILE class commands
(e.g. "EXECUTE FOO.PAS/LIST"). The more common COMPILE class commands work
as expected, but the user should be warned that there are still some peculiarities
in the way these commands interface to PASCAL.
| The February 1978 version is still available. by .R PASOLD; the related
| documentation (older versions of PASMAN and PASHLP) can be found in [PAS,SYS]
| It will be retired as soon as the current one has proven to be an improvement,
| Not a step backwards.
* * * Instructions for using the OLD PASCAL compiler (slightly updated) * * *
To use the old PASCAL compiler:
.R OPASCA
*FOO.PAS
If no errors,it will say that and then you can run your program by:
.RU FOO
Then when it types the prompt * you hit carriage return.
A manual can be obtained from PMF (Mike Farmwald) for copying.
Tom McWilliams is also an expert (TM).
Note that PASCAL is not supported, indeed the trivial program
PRO1.PAS[1,REM] generates the NO ERROR DETECTED message during
compilation, but then generates ADDRESS CHECK FOR DEVICE TTY<N>
when attempt is made to run the resultant object program.
Here is the text of the program that bombs out OPASCA:
VAR I:INTEGER;
BEGIN WHILE TRUE DO BEGIN
WRITELN(TTY,' WHAT VALUE OF I DO YOU WANT?');
BREAK(TTY);
READLN(TTY);READ(TTY,I);
WRITELN(TTY,' I I↑2');
WRITELN(TTY,I,I*I);
END
END.
Note that the PROGRAM declaration is missing. If you put it in, OPASCA
refuses to compile it at all. Another good reason for only using the
new PASCAL. -- REM